package com.sophossystems.client.asmon.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.sophossystems.client.asmon.dto.ClienteDTO;
import com.sophossystems.client.asmon.dto.ClientePMoralesDTO;
import com.sophossystems.client.asmon.dto.ClientePersonasFisicasDTO;
import com.sophossystems.client.asmon.dto.DireccionDTO;
import com.sophossystems.client.asmon.dto.RecolectaDocDTO;

public class Busqueda {

	/*
	 * id's tabla cliente
	 */
	private int idCliente;
	private int idTipoCliente;
	private int idDireccion;
	private int idStatus;
	private int idRecoleccion;
	private int idContadorAsig;
	private int idCoordinador;
	private int idContactoVenta;
	private Date fechaCaptura;
	private String rfc;

	private List<ClienteDTO> listaClientes = new ArrayList<ClienteDTO>();
	private List<ClientePersonasFisicasDTO> listaPersonasFisicas = new ArrayList<ClientePersonasFisicasDTO>();
	private List<ClientePMoralesDTO> listaPersonasMorales = new ArrayList<ClientePMoralesDTO>();
	private DireccionDTO direccionFiscal = new DireccionDTO();
	private DireccionDTO direccionRec = new DireccionDTO();
	private RecolectaDocDTO recolecta = new RecolectaDocDTO();
	private String palabraBusqueda;
	private String rfcBusqueda;
	private String nombrePersonaFisica;
	private String razonSocialPersonaMoral;
	boolean encontrado;
	boolean direccionEncontrada;
	private int seleccion=0;
	private HashMap<String, String> listaFisicas = new HashMap<String, String>();
	private HashMap<String, String> listaMorales = new HashMap<String, String>();
	private HashMap<String, String> listaFisicasCliente = new HashMap<String, String>();
	private HashMap<String, String> listaMoralesCliente = new HashMap<String, String>();

	/**
	 * @return the idCliente
	 */
	public int getIdCliente() {
		return idCliente;
	}

	/**
	 * @param idCliente
	 *            the idCliente to set
	 */
	public void setIdCliente(int idCliente) {
		this.idCliente = idCliente;
	}

	/**
	 * @return the idTipoCliente
	 */
	public int getIdTipoCliente() {
		return idTipoCliente;
	}

	/**
	 * @param idTipoCliente
	 *            the idTipoCliente to set
	 */
	public void setIdTipoCliente(int idTipoCliente) {
		this.idTipoCliente = idTipoCliente;
	}

	/**
	 * @return the idDireccion
	 */
	public int getIdDireccion() {
		return idDireccion;
	}

	/**
	 * @param idDireccion
	 *            the idDireccion to set
	 */
	public void setIdDireccion(int idDireccion) {
		this.idDireccion = idDireccion;
	}

	/**
	 * @return the idStatus
	 */
	public int getIdStatus() {
		return idStatus;
	}

	/**
	 * @param idStatus
	 *            the idStatus to set
	 */
	public void setIdStatus(int idStatus) {
		this.idStatus = idStatus;
	}

	/**
	 * @return the idRecoleccion
	 */
	public int getIdRecoleccion() {
		return idRecoleccion;
	}

	/**
	 * @param idRecoleccion
	 *            the idRecoleccion to set
	 */
	public void setIdRecoleccion(int idRecoleccion) {
		this.idRecoleccion = idRecoleccion;
	}

	/**
	 * @return the idContadorAsig
	 */
	public int getIdContadorAsig() {
		return idContadorAsig;
	}

	/**
	 * @param idContadorAsig
	 *            the idContadorAsig to set
	 */
	public void setIdContadorAsig(int idContadorAsig) {
		this.idContadorAsig = idContadorAsig;
	}

	/**
	 * @return the idCoordinador
	 */
	public int getIdCoordinador() {
		return idCoordinador;
	}

	/**
	 * @param idCoordinador
	 *            the idCoordinador to set
	 */
	public void setIdCoordinador(int idCoordinador) {
		this.idCoordinador = idCoordinador;
	}

	/**
	 * @return the idContactoVenta
	 */
	public int getIdContactoVenta() {
		return idContactoVenta;
	}

	/**
	 * @param idContactoVenta
	 *            the idContactoVenta to set
	 */
	public void setIdContactoVenta(int idContactoVenta) {
		this.idContactoVenta = idContactoVenta;
	}

	/**
	 * @return the fechaCaptura
	 */
	public Date getFechaCaptura() {
		return fechaCaptura;
	}

	/**
	 * @param fechaCaptura
	 *            the fechaCaptura to set
	 */
	public void setFechaCaptura(Date fechaCaptura) {
		this.fechaCaptura = fechaCaptura;
	}

	/**
	 * @return the rfc
	 */
	public String getRfc() {
		return rfc;
	}

	/**
	 * @param rfc
	 *            the rfc to set
	 */
	public void setRfc(String rfc) {
		this.rfc = rfc;
	}

	/**
	 * @return the listaClientes
	 */
	public List<ClienteDTO> getListaClientes() {
		return listaClientes;
	}

	/**
	 * @param listaClientes
	 *            the listaClientes to set
	 */
	public void setListaClientes(List<ClienteDTO> listaClientes) {
		this.listaClientes = listaClientes;
	}

	/**
	 * @return the listaPersonasFisicas
	 */
	public List<ClientePersonasFisicasDTO> getListaPersonasFisicas() {
		return listaPersonasFisicas;
	}

	/**
	 * @param listaPersonasFisicas
	 *            the listaPersonasFisicas to set
	 */
	public void setListaPersonasFisicas(
			List<ClientePersonasFisicasDTO> listaPersonasFisicas) {
		this.listaPersonasFisicas = listaPersonasFisicas;
	}

	/**
	 * @return the listaPersonasMorales
	 */
	public List<ClientePMoralesDTO> getListaPersonasMorales() {
		return listaPersonasMorales;
	}

	/**
	 * @param listaPersonasMorales
	 *            the listaPersonasMorales to set
	 */
	public void setListaPersonasMorales(
			List<ClientePMoralesDTO> listaPersonasMorales) {
		this.listaPersonasMorales = listaPersonasMorales;
	}

	/**
	 * @return the direccionFiscal
	 */
	public DireccionDTO getDireccionFiscal() {
		return direccionFiscal;
	}

	/**
	 * @param direccionFiscal the direccionFiscal to set
	 */
	public void setDireccionFiscal(DireccionDTO direccionFiscal) {
		this.direccionFiscal = direccionFiscal;
	}

	/**
	 * @return the direccionRec
	 */
	public DireccionDTO getDireccionRec() {
		return direccionRec;
	}

	/**
	 * @param direccionRec the direccionRec to set
	 */
	public void setDireccionRec(DireccionDTO direccionRec) {
		this.direccionRec = direccionRec;
	}

	/**
	 * @return the recolecta
	 */
	public RecolectaDocDTO getRecolecta() {
		return recolecta;
	}

	/**
	 * @param recolecta the recolecta to set
	 */
	public void setRecolecta(RecolectaDocDTO recolecta) {
		this.recolecta = recolecta;
	}

	/**
	 * @return the palabraBusqueda
	 */
	public String getPalabraBusqueda() {
		return palabraBusqueda;
	}

	/**
	 * @param palabraBusqueda
	 *            the palabraBusqueda to set
	 */
	public void setPalabraBusqueda(String palabraBusqueda) {
		this.palabraBusqueda = palabraBusqueda;
	}

	/**
	 * @return the rfcBusqueda
	 */
	public String getRfcBusqueda() {
		return rfcBusqueda;
	}

	/**
	 * @param rfcBusqueda
	 *            the rfcBusqueda to set
	 */
	public void setRfcBusqueda(String rfcBusqueda) {
		this.rfcBusqueda = rfcBusqueda;
	}

	/**
	 * @return the nombrePersonaFisica
	 */
	public String getNombrePersonaFisica() {
		return nombrePersonaFisica;
	}

	/**
	 * @param nombrePersonaFisica
	 *            the nombrePersonaFisica to set
	 */
	public void setNombrePersonaFisica(String nombrePersonaFisica) {
		this.nombrePersonaFisica = nombrePersonaFisica;
	}

	/**
	 * @return the razonSocialPersonaMoral
	 */
	public String getRazonSocialPersonaMoral() {
		return razonSocialPersonaMoral;
	}

	/**
	 * @param razonSocialPersonaMoral
	 *            the razonSocialPersonaMoral to set
	 */
	public void setRazonSocialPersonaMoral(String razonSocialPersonaMoral) {
		this.razonSocialPersonaMoral = razonSocialPersonaMoral;
	}

	/**
	 * @return the encontrado
	 */
	public boolean isEncontrado() {
		return encontrado;
	}

	/**
	 * @param encontrado
	 *            the encontrado to set
	 */
	public void setEncontrado(boolean encontrado) {
		this.encontrado = encontrado;
	}

	/**
	 * @return the direccionEncontrada
	 */
	public boolean isDireccionEncontrada() {
		return direccionEncontrada;
	}

	/**
	 * @param direccionEncontrada the direccionEncontrada to set
	 */
	public void setDireccionEncontrada(boolean direccionEncontrada) {
		this.direccionEncontrada = direccionEncontrada;
	}

	/**
	 * @return the seleccion
	 */
	public int getSeleccion() {
		return seleccion;
	}

	/**
	 * @param seleccion the seleccion to set
	 */
	public void setSeleccion(int seleccion) {
		this.seleccion = seleccion;
	}

	/**
	 * @return the listaFisicas
	 */
	public HashMap<String, String> getListaFisicas() {
		return listaFisicas;
	}

	/**
	 * @param listaFisicas
	 *            the listaFisicas to set
	 */
	public void setListaFisicas(HashMap<String, String> listaFisicas) {
		this.listaFisicas = listaFisicas;
	}

	/**
	 * @return the listaMorales
	 */
	public HashMap<String, String> getListaMorales() {
		return listaMorales;
	}

	/**
	 * @param listaMorales
	 *            the listaMorales to set
	 */
	public void setListaMorales(HashMap<String, String> listaMorales) {
		this.listaMorales = listaMorales;
	}
	

	/**
	 * @return the listaFisicasCliente
	 */
	public HashMap<String, String> getListaFisicasCliente() {
		return listaFisicasCliente;
	}

	/**
	 * @param listaFisicasCliente the listaFisicasCliente to set
	 */
	public void setListaFisicasCliente(HashMap<String, String> listaFisicasCliente) {
		this.listaFisicasCliente = listaFisicasCliente;
	}

	/**
	 * @return the listaMoralesCliente
	 */
	public HashMap<String, String> getListaMoralesCliente() {
		return listaMoralesCliente;
	}

	/**
	 * @param listaMoralesCliente the listaMoralesCliente to set
	 */
	public void setListaMoralesCliente(HashMap<String, String> listaMoralesCliente) {
		this.listaMoralesCliente = listaMoralesCliente;
	}

	public ClienteDTO mapper() {

		ClienteDTO clienteDto = new ClienteDTO();
		clienteDto.setIdCliente(this.getIdCliente());
		clienteDto.setIdTipoCliente(this.getIdTipoCliente());
		clienteDto.setIdDireccion(this.getIdDireccion());
		clienteDto.setIdStatus(this.getIdStatus());
		clienteDto.setIdRecolectaDoc(this.getIdRecoleccion());
		clienteDto.setIdContadorAsig(this.getIdContadorAsig());
		clienteDto.setIdCoordinador(this.getIdCoordinador());
		clienteDto.setIdContactoVenta(this.getIdContactoVenta());
		clienteDto.setFechaCaptura(this.getFechaCaptura());
		clienteDto.setRfc(this.getRfc());

		return clienteDto;
	}

	public void unmapper(ClienteDTO mapper) {

		this.setIdCliente(mapper.getIdCliente());
		this.setIdTipoCliente(mapper.getIdTipoCliente());
		this.setIdDireccion(mapper.getIdDireccion());
		this.setIdStatus(mapper.getIdStatus());
		this.setIdRecoleccion(mapper.getIdRecolectaDoc());
		this.setIdContadorAsig(mapper.getIdContadorAsig());
		this.setIdCoordinador(mapper.getIdCoordinador());
		this.setIdContactoVenta(mapper.getIdContactoVenta());
		this.setFechaCaptura(mapper.getFechaCaptura());
		this.setRfc(mapper.getRfc());

	}

	public void clean() {
		this.setIdCliente(0);
		this.setIdTipoCliente(0);
		this.setIdDireccion(0);
		this.setIdStatus(0);
		this.setIdRecoleccion(0);
		this.setIdContadorAsig(0);
		this.setIdCoordinador(0);
		this.setIdContactoVenta(0);
		this.setFechaCaptura(null);
		this.setRfc(null);
	}

}
